package com.cloudkinto.bo.api;

import cn.hutool.core.date.DateUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang.StringUtils;

import java.util.Date;
import java.util.List;

/**
 * @author long
 */
@Data
public class OrderInputApiQueryBo {

    @ApiModelProperty(value = "当前页")
    public Integer current = 1;

    @ApiModelProperty(value = "每页条数 默认20 最大200")
    public Integer pageSize = 20;

    @ApiModelProperty(value = "入库单号")
    private List<String> sourceNoList;

    @ApiModelProperty(value = "关联单号")
    private List<String> referenceNumberList;

    @ApiModelProperty(value = "状态 0草稿 1待入库 2收货中 3已收货 4已上架 5已取消")
    private Integer status;

    @ApiModelProperty(value = "时间类型 1创建时间 2提交时间 3预计到达日期 4收货时间 5上架时间 6取消时间")
    private Integer timeType;

    @ApiModelProperty("开始时间 格式：yyyy-MM-dd HH:mm:ss或yyyy-MM-dd，为空默认查询最近30天")
    private String startDate;

    @ApiModelProperty("结束时间")
    private String endDate;

    public String getStartDate() {
        if (StringUtils.isBlank(startDate)) {
            return DateUtil.format(DateUtil.offsetDay(new Date(), -30), "yyyy-MM-dd");
        }
        return startDate;
    }

    public String getEndDate() {
        if (StringUtils.isBlank(endDate)) {
            return DateUtil.format(DateUtil.offsetDay(new Date(), 1), "yyyy-MM-dd");
        }
        return endDate;
    }

    public Integer getPageSize() {
        if (pageSize > 200) {
            return 200;
        }
        if (pageSize < 1) {
            return 10;
        }
        return pageSize;
    }
}
